草庐IT

C++ 和迭代器失效

全部标签

windows - CMD:迭代从另一个命令管道传输的标准输入

最近question包含一个我曾经思考过很多次但仍然不知道它是否有优雅解决方案的问题:假设,我有一个形成文件名或目录列表的命令:dir/B/AD。然后,我想将命令的结果通过管道传递给迭代器,该迭代器会对每个文件名执行某些操作。我该怎么做?当然可以使用for的反引号版本代替管道:for/F"usebackq"%Fin(`dir/B/AD`)do@echo%F但我感兴趣的是从stdin获取数据,这样我就不会对文件名的来源进行硬编码。 最佳答案 我碰巧自己找到了解决办法:dir/B/AD|for/F"usebackq"%Fin(`find

windows - 如果名称中有 - 则 for/d 迭代文件夹不起作用

我在Setup文件夹中有很多这样的文件夹:PN1001-1.22abePN1001-1.12dfePN1001-1.33fgh-PN1001-1.01ijkPN1001-1.37lmnPN1001-1.02opq这些文件夹中的每一个都有一个名为install的子文件夹,其中包含一个可执行文件。我想将可执行文件复制到.\Setup文件夹。所以我使用这样的脚本:for/d%%Gin(Setup\*)do(xcopy"%%G\Installation\*.exe".\Setup)但除了PN1001-1.33fgh-文件夹外,该脚本工作正常。必须是-on端。我得到错误:Filenotfound

c - 迭代 PEB DllName 仅显示 exe 名称

我正在尝试获取我的应用程序中已加载模块的列表(与安全/shellcode有关,因此请避免调用WINAPI)。我正在遍历PEB->Ldr模块双向链表,但每次打印DLL的名称时,它只是打印当前正在执行的应用程序的名称和路径。在其他人的代码中,我看到他们只是将当前的LIST_ENTRY指针设为PLDR_DATA_TABLE_ENTRY,您可以直接调用FullDllName那样。但是,例如,要实际获取基址,您需要调用Reserved2[0]而不是DllBase,这是可以理解的,因为LIST_ENTRY是结构中的8个字节,但它没有解释为什么可以直接调用FullDllName。Here'sanex

windows - 在 Windows Batch 中迭代键值对

我有一个表示设置名称及其值的键值对列表。ssl=strictalways_use_https=onminify={"css":"off","html":"off","js":"off"}key=valuemany=more我想在批处理文件中通过curl请求应用指定设置(键)的每个值:curl-XPATCH"https://api.cloudflare.com/client/v4/zones/%zone%/settings/%key%"^-H"X-Auth-Email:%email%"^-H"X-Auth-Key:%auth%"^-H"Content-Type:application/j

c++ - 正则表达式迭代器在 Cpp 中不起作用

我在VisualStudio2010上使用C++(我不认为它是v11标准,但我还没有检查过)。我正在尝试使用以下代码提取tracert的IP地址:#include#include#include#includeusingnamespacestd;typedefregex_iteratorregexp;#defineMAX_BUFFER255intmain(){stringout;charbuffer[MAX_BUFFER];smatchm;regexe("1.+\\[(.+)\\]");FILE*stream=_popen("tracertSOMEHOSTNAME","r");whil

c++ - 强制 QBENCHMARK 执行多次迭代

如何使用QBENCHMARK执行多次迭代?例如我有这段代码:voidMyUnitTest::speedText(){QBENCHMARK{obj->foo();}}我看了文档,上面写着:ThecodeinsidetheQBENCHMARKmacrowillbemeasured,andpossiblyalsorepeatedseveraltimesinordertogetanaccuratemeasurement.Thisdependsontheselectedmeasurementback-end.我尝试使用默认值和-tickcounter,但两者都只显示一次迭代:默认(无参数):RE

windows - 如果抛出错误,如何跳过循环中的迭代?

我在Windows7cmd中工作。我写了几行代码来从一个相当大的目录树中复制某些文件。这是代码:for/f"tokens=*"%ain('dir"L:\Level1\Level2\Level3\\\*."/ad/b')dorobocopy"L:\Level1\Level2\Level\%a\Level5\Level6\Level7""c:\Destination\%a"/E/V/R:1/W:1/MT:32/SEC基本上,这会进入所有Level4文件夹(在Level3内)并复制在目录其余部分找到的文件。我遇到的问题是我的某些Level4文件夹实际上没有Level5/Level6/Leve

c++ - 如何安全地迭代互锁列表?

我们有存储在互锁单链表中的线程之间共享的数据。https://msdn.microsoft.com/en-us/library/windows/desktop/ms684121(v=vs.85).aspx我们知道列表在初始化后不会改变,但我们希望各个线程能够迭代并读取列表的内容。有没有一种安全的方法来读取/迭代slist?当前代码使用InterlockedFlushSList从列表中取出节点,然后制作数据的临时拷贝,然后将节点放回slist。如果slist在线程之间共享,则似乎是等待发生的竞争条件。如果不使用不同的线程安全结构,是否有一种安全的方法来读取迭代slist?

c# - 使用带有 TimeSpan 的 AutoResetEvent.WaitOne 创建迭代低于 1 毫秒的循环

我正在尝试使用以8000个滴答开始的TimeSpan创建一个间隔小于1ms的循环(1个滴答=100ns,因此8000个滴答等于0.8ms或800us):privatestaticvoidMeasureAutoResetEvent(){TimeSpaninterval=newTimeSpan(8000L);//800usdoubleelapsed=0;Stopwatchwatch=newStopwatch();AutoResetEventautoResetEvent=newAutoResetEvent(false);while(true){watch.Restart();autoRese

Windows批处理在for循环中迭代 token

如何在Windows批处理脚本的for循环中遍历标记?我正在编写一个脚本,允许用户搜索文件并打印出该文件的父目录。到目前为止,我可以从文件名中获取完整路径,但我只需要父目录。工作正常,但想要一种更有效的遍历标记的方法。这是我所拥有的片段。file变量是要搜索的文件,Path变量是文件的完整路径。fOR/F"tokens=1-25delims=\"%%iIN("!thePath!")DO(if%%jequ%file%settheParent=%%iif%%kequ%file%settheParent=%%jif%%lequ%file%settheParent=%%kif%%mequ%fi